#ifndef UTILITIES_H_
#define UTILITIES_H_

#include <dirent.h>
#include <errno.h>
#include <stdint.h>
#include <stdio.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <fstream>
#include <iostream>
#include <vector>
namespace slam_ros {
bool fileExists(const std::string& file_name);

bool dirExists(const std::string& dir_name);

int doMkdir(const std::string& path, mode_t mode);

int mkPath(const std::string& path, mode_t mode);

void deleteFolderTree(const std::string& dir_name);

int directoryFileCount(const std::string& dir_name);

int directoryGetAllFileName(const std::string& dir_name,
                            std::vector<std::string>* file_name);

int isDirectory(const std::string& path);

bool getEnvironmentVariable(std::string& str, const char* environment_variable);

bool getFileTime(const std::string& file_name, std::string* file_time_info);

// 将文件重命名为 原文件+文件时间信息
void RenameFileWithTime(const std::vector<std::string>& files_name);

void SplitString(const std::string& str, const std::string& delimiter,
                 std::vector<std::string>* result);

bool LoadDataFromTxt(const std::string& file_name, const std::string& delimiter,
                     std::vector<std::vector<std::string>>* all_str_ptr);

bool loadinitMapYAML(const std::string& file_name, std::string &map_id);

int get_file_md5(const std::string &file_name, std::string &md5_value);

}
#endif  //
